Оглавление
Поиск по содержимому исходников.
Слияние ветки в «основную» ветку.
Слияние части ветки с основной веткой.
Слияние одной ревизии – не работает.
Описание не покрывает весь функционал Tortoise HG, поскольку сформировано как шпаргалка при переходе от Tortoise SVN на Tortoise HG и многие вещи не менялись совсем, а многие интуитивно понятны.
Провести поиск
В окне «Tortoise hg workbench» - нажать Search. Пиктограмма лупы на верхней панели не путать с Filter graph в левом углу)
Внизу откроется панель поиска. Написать искомое выражение
Строится список найденных вхождений.
Выбрать в списке требуемое вхождение. Нажать Ок. Откроется Hg file log viewer.
Изучать Hg file log viewer
Есть механизм показа отличий и три типа показа изменений
Можно выставить интересующих кусок и последовательно перемещаться по ревизиям.
Выставить область поиска — конкретную ревизию (Revision) или всю историю (All History)
Обновить с удалением всех изменений до ревизии которую требуется добавить. После этого она станет локальной.
Правая мышь на ревизии — Update
В окне Update дополнительно выставить [v] Discard local change
Выделить последнюю ревизию основной ветки
Выбрать Merege whith local..
В этом случае слияние произойдет между основной веткой и сливаемой (которая будет локальной).
Выполнить действия предыдущего пункта но выделить любую ревизию ветки. При этом слияние произойдет выделенной и всех предшествующих ей ревизиях.
TortoiseHG 5.0.2.
Пробовал Discard all changes from the other revision поставить галку. Действия производятся но результата нет.
Remove – удалить файл из репозитория. В истории в графе start ключ R обозначает, что файл удаляется.
На файл правой кнопкой Forget – забыть файл из репозитория.
Всплывет окно «hg forget”. В графе start ключ C.
Жмем комит. Окно комит с красной строкой. В графе start R файл удаляется.
То же окно. Атрибут R меняется на [?] - OK.
Далее спрашивают «добавить ли файл к не отслеживаемым файлам» - OK.
Файл уходит из списка
В итоге все равно отслеживает и комитится. Галка на нем стоит.
С обновлением до 5.0.2. проблема не ушла
После слияния обычно возникает окно Resolve conflicts.
Если нажать Mercurial resolve, то HG попробует решить конфликты. В списке останутся нерешенные.
Если нажать Tools Resolve, HG также попробует решить конфликты но после этого сразу откроет KDiff3 для ручного решения. Кликаем каждый файл для ручного слияния. Будет открываться KDiff3.
В нижнем окне видно какие из изменений были применены, они маркируются A,B,C буквами. Вопросиками помечаются ожидающие ручного решения блоки. parent1 это изменения в той ревизии, что я пытаюсь внедрить.
Указывать для какого из трех окон изменение применить можно нажимая Ctrl + 1, 2, 3 для 1, 2, 3 окон соответственно. Иногда требуется сначала отменить уже принятые изменния, для этого нажать соответсвующую текущему блоку цифру, а уже затем применть новый. При каждом нажатии Ctrl+N активируется или отменяется изменения для соотв секции.
перемещатся между конфликтами нужно нажимая одиночные стрелки, которые называются Go to next delta. Неверное название.
Формат команд для командной строки. Удобно использовать в Far Manager и подобных консольных клиентах: thg [команда TortoiseHG]
Например: thg vdiff, thg update.
Конфликт при комите .hgignore
Изменил .hgignore подключенный к HG
Непонятные проблемы.
Вылечил подложив старый .hgignore сохраненный ранее.
Вывод. Лучше .hgignore также завести под CVS.
Не работает cherry pick
v1.